In today's marketplace, peripheral units such as printers, facsimile units, plotters, etc., need to be able to communicate with many different entities, i.e., local area networks, individual personal computers, wide area networks, etc. No longer is it sufficient to provide a peripheral unit with a single communications interface, as that greatly reduces its potential market.
As a result, prior art peripheral units exist with modular interface units that are card-mounted and may be changed by simple substitution of another modular interface card. In general, such interface units allow peripheral unit-to-outside world communications through the use of packet-arranged data blocks in the well known manner. Individual interface units are thus able to provide interface functionality with networks and handle the network protocol headers. Such interface units insert and modify interface headers used between the interface unit and a connected peripheral unit. If the peripheral unit is to communicate directly with one computer, the interface unit is simply provided with the capability of handling interface unit protocol and does not have the ability (or the need) to handle network protocol headers.
One such modular interface unit was incorporated in the Hewlett-Packard 2563 family of line printers and provided required interface functions on a single, removable card. That card included both a processor and a random access memory, which memory was shared and accessible by both the interface unit's processor as well as a processor in the printer.
In FIG. 1, a high level block diagram indicates the overall system's arrangement and includes peripheral unit (PU) 20 (e.g., a printer), a modular interface unit (MIU) 22 and a host computer 24. Dotted line 26 between PU 20 and MIU 22 indicates the MIU/PU interface and the dotted line 28 indicates an I/0 hardware link connecting MIU 22 to host computer 24. All communications (except for certain control line functions) occur between the MIU 22 and PU 20 through a shared memory in MIU 22.
The prior art system of FIG. 1 communicates through a use of data and control packets and employs a request/response protocol. Both the data and control packets include header and buffer portions, with the header arrangement generally indicated in FIG. 2. The first 8 bytes in the header (0-7) are device specific and are not for communicating information between PU 20 and MIU 22. The following seven fields in the header contain specific communication information. Bytes 8 and 9 include Command and Command Modifier fields that indicate an action to be performed, such as: set the peripheral's display, self test, read data into peripheral unit, write data to a connected computer etc. The Return status field follows and contains an indication of the results of performing an action prescribed by the Command and Command Modifier fields. The Start of Data field indicates the address of the beginning byte of the buffer associated with the particular header. The Data Length field indicates the number of bytes of valid data in the buffer and the Max Data Length field indicates the total number of bytes available in the packet's buffer.
In FIG. 3, representations of Start of Data, Data Length, and Max Data Length fields are shown as they apply to a buffer. The Start of Data field indicates the initial address of buffer 30; the Data Length field indicates the length of valid data in buffer 30; and the Max Data Length field indicates the entire data length of buffer 30 and encompasses both valid data and empty buffer areas.
In the 2563 printer, referred to above, buffer 30 had a prescribed length for control packets and was appended directly to the header. Buffer 30 held the substantive information being communicated within the system in accordance with the header's directions. The fixed length of the buffer presented difficulties. It constrained the flexibility of the system to accommodate more detailed control commands that required additional, non-available buffer space. The fixed size of the buffer also prevented the system from adapting to changed requirements imposed by the peripheral unit or the interface unit. Additionally, the fixed buffer size presented constraints when attempting to extend the interface standard to new network configurations and packet structures.
While the provision of such replaceable interface units provided greater flexibility for peripheral unit-to-outside world communications, problems were created by the separation of the interface function from the peripheral unit's function. In specific, before a peripheral unit and associated interface unit could communicate with an outside network or computer, certain configuration inputs needed to be provided to the interface unit to enable communications to occur. For instance, if the interface unit was to communicate via a serial port, inputs were required specifying the baud rate, number of data bits per character, type of hand shaking, polarity of the line, etc. Characteristically, those inputs were implemented by the user opening the peripheral's case and setting switches in accordance with instructions from a manual. At best, this was awkward, and at worst, a mistake would completely prevent communications from occurring.
As the availability of local area networks and other multi-user networks increased, the requirement for interface units to handle network protocol headers and trailers has also increased. So long as those headers were received over relatively slow communication lines or were received over network where the inflow of data could be selectively controlled, the protocol headers could be stripped on-the-fly by the interface unit and system performance was not degraded. However, with the advent of new networks having high speed "non-stoppable" data flows, such intermediate protocol header processing has become difficult to achieve in a cost-effective manner. Thus, interface units have had to become increasingly complex and costly to handle such network protocol headers.
It is therefore an object of this invention to provide a modular interface unit for a peripheral unit that exhibits improved shared-memory operation.
It is another object of this invention to provide a modular interface unit that enables user-friendly configuration of the interface unit.
It is still another object of this invention to provide a modular interface that provides improved handling of network protocol headers and trailers.